package com.csu.cphone.service;

import java.util.List;

import com.csu.common.exception.WebException;
import com.csu.cphone.pojo.CustomerPojo;
import com.csu.cphone.pojo.ProducerPojo;
import com.csu.cphone.vo.OrderMessageVo;

/**
 * @项目名称：cphone
 * @类名称：UserService
 * @类描述：
 * @创建人：Tangc
 * @创建时间：2017年9月11日 下午5:43:36
 * @company:
 */
public interface UserService
{

    /**
     * @description
     * @author TangC
     * @date 2017年9月11日 下午5:52:33
     * @param wxOpenid
     * @param number
     * @param password
     * @return
     */
    CustomerPojo customerLogin(String wxOpenid, String number, String password) throws WebException;

    /**
     * @description
     * @author TangC
     * @date 2017年9月12日 下午5:28:28
     * @param number
     * @param password
     * @return
     */

    ProducerPojo producerLogin(String number, String password) throws WebException;

    /**
     * @description
     * @author TangC
     * @date 2017年9月12日 下午6:02:06
     * @param wxOpenid
     * @param number
     * @param password
     * @param name
     * @return
     */

    CustomerPojo customerSign(String wxOpenid, String number, String password, String name);

    /**
     * @description
     * @author TangC
     * @date 2017年9月19日 下午9:31:47
     * @param authCode
     */
    boolean checkAuthCode(String number, String authCode) throws WebException;

    /**
     * @description
     * @author TangC
     * @date 2017年9月19日 下午9:41:24
     * @param number
     * @return
     */
    Boolean sendSignCode(String number);

    /**
     * @description
     * @author TangC
     * @date 2017年12月8日 上午10:41:18
     * @param number
     * @param lat
     * @param lng
     * @param serviceStatus
     * @return
     */

    List<OrderMessageVo> producerUpload(String number, Double lat, Double lng, Integer serviceStatus);

    /**
     * @description
     * @author TangC
     * @date 2017年12月8日 下午9:01:47
     * @param number
     * @return
     */

    Integer getServiceStatus(String number);

    /**
     * @description
     * @author TangC
     * @date 2017年12月9日 下午10:49:49
     * @param lat
     * @param lng
     * @return
     */
    ProducerPojo getNearProducer(Double lat, Double lng, Integer service);

    /**
     * @description
     * @author TangC
     * @date 2017年12月13日 下午2:38:46
     * @param number
     * @return
     */

    ProducerPojo getProducerByNumber(String number);

    /**
     * @description
     * @author TangC
     * @date 2017年12月13日 下午10:06:31
     * @param code
     * @param state
     * @return
     */

    String getOpenIdByCode(String code, String state) throws WebException;

    /**
     * @description
     * @author TangC
     * @date 2017年12月13日 下午10:11:54
     * @param openid
     * @param customerId
     * @return
     */
    Integer updateOpenid(String openid, Integer customerId);

    
    /** @description
     * @author TangC
     * @date 2017年12月14日 下午3:36:23
     * @param openid
     * @return
     */
    
    CustomerPojo selectByOpenId(String openid);

}
